﻿// ********************************************
// ClassName  ：  {filename}
// Author        ：  
// Company     ： 智测心控
// Version        ：V1.0
// CreateTime ： {date}
// Description ：  
// ********************************************

using log4net;
using System;
using System.Reflection;

namespace Common.Common
{
    /// <summary>
    /// 日志记录帮助类
    /// </summary>
    public static class LogHelper
    {
        /// <summary>
        /// 创建日志记录器
        /// </summary>
        public static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

        /// <summary>
        /// 记录日志信息
        /// </summary>
        /// <param name="info">待记录的日志信息</param>
        public static void WriteLog(string info)
        {
            if (Logger.IsInfoEnabled)
            {
                Logger.Info(info);
            }
        }

        /// <summary>
        /// 记录日志信息
        /// </summary>
        /// <param name="info">待记录的日志信息</param>
        public static void DebugLog(string info)
        {
            if (Logger.IsDebugEnabled)
            {
                Logger.Debug(info);
            }
        }

        /// <summary>
        /// 记录日志信息
        /// </summary>
        /// <param name="info">待记录的日志信息</param>
        public static void WarmLog(string info)
        {
            if (Logger.IsWarnEnabled)
            {
                Logger.Warn(info);
            }
        }

        /// <summary>
        /// 记录日志信息
        /// </summary>
        /// <param name="info">待记录的日志信息</param>
        public static void Info(string info)
        {
            if (Logger.IsInfoEnabled)
            {
                Logger.Info(info);
            }
        }

        /// <summary>
        /// 记录日志信息
        /// </summary>
        /// <param name="info">待记录的日志信息</param>
        public static void Debug(string info)
        {
            if (Logger.IsDebugEnabled)
            {
                Logger.Debug(info);
            }
        }

        /// <summary>
        /// 记录日志信息
        /// </summary>
        /// <param name="excptionType">异常类型</param>
        /// <param name="message">消息</param>
        /// <param name="stackTrace">堆栈信息</param>
        public static void Error(string excptionType, string message, string stackTrace)
        {
            if (Logger.IsInfoEnabled)
            {
                Logger.ErrorFormat("{0}:{1}\n{2}", excptionType, message, stackTrace);
            }
        }

        /// <summary>
        /// 记录日志信息
        /// </summary>
        /// <param name="ex">异常信息</param>
        public static void Error(Exception ex)
        {
            if (Logger.IsErrorEnabled)
            {
                Logger.Error(ex);
            }
        }

        /// <summary>
        /// 记录日志信息
        /// </summary>
        /// <param name="message">异常信息</param>
        public static void Error(object message)
        {
            if (Logger.IsErrorEnabled)
            {
                Logger.Error(message);
            }
        }

        /// <summary>
        /// 记录日志信息
        /// </summary>
        /// <param name="info">待记录的日志信息</param>
        /// <param name="ex">异常信息</param>
        public static void Error(string info, Exception ex)
        {
            if (Logger.IsErrorEnabled)
            {
                Logger.Error(info, ex);
            }
        }
    }
}
